1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import com.google.common.annotations.GwtCompatible;
20
21
22
23
24
25
26 @GwtCompatible
27 public class TransposedTableTest extends AbstractTableTest {
28
29 @Override protected Table<String, Integer, Character> create(
30 Object... data) {
31 Table<Integer, String, Character> original = HashBasedTable.create();
32 Table<String, Integer, Character> table = Tables.transpose(original);
33 table.clear();
34 populate(table, data);
35 return table;
36 }
37
38 public void testTransposeTransposed() {
39 Table<Integer, String, Character> original = HashBasedTable.create();
40 assertSame(original, Tables.transpose(Tables.transpose(original)));
41 }
42
43 public void testPutOriginalModifiesTranspose() {
44 Table<Integer, String, Character> original = HashBasedTable.create();
45 Table<String, Integer, Character> transpose = Tables.transpose(original);
46 original.put(1, "foo", 'a');
47 assertEquals((Character) 'a', transpose.get("foo", 1));
48 }
49
50 public void testPutTransposeModifiesOriginal() {
51 Table<Integer, String, Character> original = HashBasedTable.create();
52 Table<String, Integer, Character> transpose = Tables.transpose(original);
53 transpose.put("foo", 1, 'a');
54 assertEquals((Character) 'a', original.get(1, "foo"));
55 }
56
57 public void testTransposedViews() {
58 Table<Integer, String, Character> original = HashBasedTable.create();
59 Table<String, Integer, Character> transpose = Tables.transpose(original);
60 original.put(1, "foo", 'a');
61 assertSame(original.columnKeySet(), transpose.rowKeySet());
62 assertSame(original.rowKeySet(), transpose.columnKeySet());
63 assertSame(original.columnMap(), transpose.rowMap());
64 assertSame(original.rowMap(), transpose.columnMap());
65 assertSame(original.values(), transpose.values());
66 assertEquals(original.row(1), transpose.column(1));
67 assertEquals(original.row(2), transpose.column(2));
68 assertEquals(original.column("foo"), transpose.row("foo"));
69 assertEquals(original.column("bar"), transpose.row("bar"));
70 }
71 }